package grupobbva.pe.operhc.dao;


import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.ibatis.dao.client.DaoManager;

import grupobbva.pe.operhc.domain.PerfilRol;
import grupobbva.pe.operhc.domain.SegOpcion;
import grupobbva.pe.operhc.domain.SegUsuario;
import grupobbva.pe.operhc.domain.Tabla;
import grupobbva.pe.operhc.service.BaseSqlMapDao;

public class LoginDAOImpl extends BaseSqlMapDao implements LoginDAO{

	public LoginDAOImpl(DaoManager daoManager){
		super(daoManager);
	}

	public List<SegOpcion> getListOptionsByUsuario(String codUsuario) {

		Map<String, String> mapParam = new HashMap<String, String>();
		mapParam.put("codUsuario", codUsuario);
		
		return queryForList("SegUsuario.getListOptionsByUsuario", mapParam);
	}

	public List<SegUsuario> getIfUserExistsInAppByUsu(
			Map<String, String> mapParam) {
		return queryForList("SegUsuario.getIfUserExistsInAppByUsu", mapParam);
	}

	public List<SegUsuario> getIfUserExistsInAppByCargo(
			Map<String, String> mapParam) {
		return queryForList("SegUsuario.getIfUserExistsInAppByCargo", mapParam);
	}

	public List<SegUsuario> getIfUserExistsInAppByOfi(
			Map<String, String> mapParam) {
		return queryForList("SegUsuario.getIfUserExistsInAppByOfi", mapParam);
	}
	
	
	public List<PerfilRol> getListRolesByPerfiles(String codigoPerfiles) {
		HashMap params = new HashMap();
		List<PerfilRol> oroles= new ArrayList<PerfilRol>();
		List<Tabla> otroles= new ArrayList<Tabla>();
		
		PerfilRol operfilRol=null;
		Tabla orol=null;
	try {			
			params.put("codigoPerfiles", codigoPerfiles);		
			//queryForObject("SegUsuario.getListRolesByPerfiles", params);
			// Map map = new HashMap();        
			 otroles=queryForList("SegUsuario.getListRolesByPerfiles", params);

	        if (otroles!=null && otroles.size()>0){
	        	for(Tabla oper:otroles ){
			    	operfilRol=new PerfilRol(); 
		    		operfilRol.setIdRol(String.valueOf(oper.getId()));
		    		orol= new Tabla();
		    		orol.setId(oper.getId());
		    		orol.setCodigo(oper.getCodigo());
		    		orol.setDescripcion(oper.getDescripcion());
		    		operfilRol.setRol(orol);		    	
		    		oroles.add(operfilRol);
	        		
	        	}
	        }
			 
	
//			Object o = params.get("roles");
//			if(o instanceof ResultSet)
//			{
//			    ResultSet res = (ResultSet) o;
//			    while(res.next()){
//			    	operfilRol=new PerfilRol(); 
//			    		operfilRol.setIdRol(res.getString("IDROL"));
//			    		orol= new Tabla();
//			    		orol.setId(res.getLong("IDROL"));
//			    		orol.setCodigo(res.getString("CODIGOROL"));
//			    		orol.setDescripcion(res.getString("ROL"));
//			    		operfilRol.setRol(orol);		    	
//			    		oroles.add(operfilRol);
//			    }
//			    res.close();
//			}			
			
		} catch (Exception e) {
			return oroles= new ArrayList<PerfilRol>();
		}
	
		return oroles;

	}
}
